#include <iostream>
#include <cmath>
#include <cstring>
bool resolve(int val, char *src, int len, char *dst)
{
    int v[5]={0};
    char t[6]={0};
    for(int i = 0; i < len; i++)
        src[i]-=('A'-1);
    bool solve = false;
    for(int i1 = 0; i1 < len; i1++)
    {
        v[0]=pow(src[i1], 5);
        for(int i2 = 0; i2 < len; i2++)
        {
            if(i2==i1)continue;
            v[1]=pow(src[i2], 4);
            for(int i3 = 0; i3 < len; i3++)
            {
                if(i3==i1||i3==i2)continue;
                v[2]=pow(src[i3], 3);
                for(int i4 = 0; i4 < len; i4++)
                {
                    if(i4==i3||i4==i2||i4==i1)continue;
                    v[3]=pow(src[i4], 2);
                    for(int i5 = 0; i5 < len; i5++)
                    {
                        if(i5==i4||i5==i3||i5==i2||i5==i1)continue;

                        v[4]=src[i5];
                        if(v[0]-v[1]+v[2]-v[3]+v[4]==val)
                        {

                            t[0]=src[i5]+'A'-1;
                            t[1]=src[i4]+'A'-1;
                            t[2]=src[i3]+'A'-1;
                            t[3]=src[i2]+'A'-1;
                            t[4]=src[i1]+'A'-1;
                            if(solve)
                            {
                                if(strcmp(t,dst)>0)
                                    memcpy(dst, t, 5);
                            }else
                                memcpy(dst, t, 5);
                            solve=true;
                        }
                    }
                }
            }
        }
    }
    return solve;
}
int main(int argc, char *argv[])
{
    int val;
    char dst[6]={0};

    while (1) {
        char src[27]={0};
        std::cin>>val>>src;
        if(val==0 && strcmp(src, "END")==0)
            break;
        if(resolve(val, src, strlen(src), dst))
            std::cout<<dst<<std::endl;
        else
            std::cout<<"no solution"<<std::endl;
    }
}
